using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("ZoneDeck")]
	public class ZoneDeck : Zone
	{
		public GameObject m_ThicknessFull => method_3<GameObject>("m_ThicknessFull");

		public GameObject m_Thickness75 => method_3<GameObject>("m_Thickness75");

		public GameObject m_Thickness50 => method_3<GameObject>("m_Thickness50");

		public GameObject m_Thickness25 => method_3<GameObject>("m_Thickness25");

		public GameObject m_Thickness1 => method_3<GameObject>("m_Thickness1");

		public Spell m_DeckFatigueGlow => method_3<Spell>("m_DeckFatigueGlow");

		public TooltipZone m_deckTooltipZone => method_3<TooltipZone>("m_deckTooltipZone");

		public TooltipZone m_playerHandTooltipZone => method_3<TooltipZone>("m_playerHandTooltipZone");

		public static int MAX_THICKNESS_CARD_COUNT => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "ZoneDeck", "MAX_THICKNESS_CARD_COUNT");

		public bool m_suppressEmotes => method_2<bool>("m_suppressEmotes");

		public bool m_warnedAboutLastCard => method_2<bool>("m_warnedAboutLastCard");

		public bool m_warnedAboutNoCards => method_2<bool>("m_warnedAboutNoCards");

		public bool m_wasFatigued => method_2<bool>("m_wasFatigued");

		public ZoneDeck(IntPtr address, string className)
			: base(address, className)
		{
		}

		public ZoneDeck(IntPtr address)
			: this(address, "ZoneDeck")
		{
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void TooltipChanged(bool shown)
		{
			method_8("TooltipChanged", shown);
		}

		public new void UpdateLayout()
		{
			method_8("UpdateLayout");
		}

		public void SetVisibility(bool visible)
		{
			method_8("SetVisibility", visible);
		}

		public void SetCardToInDeckState(Card card)
		{
			method_8("SetCardToInDeckState", card);
		}

		public void DoFatigueGlow()
		{
			method_8("DoFatigueGlow");
		}

		public bool IsFatigued()
		{
			return method_11<bool>("IsFatigued", Array.Empty<object>());
		}

		public GameObject GetActiveThickness()
		{
			return method_14<GameObject>("GetActiveThickness", Array.Empty<object>());
		}

		public GameObject GetThicknessForLayout()
		{
			return method_14<GameObject>("GetThicknessForLayout", Array.Empty<object>());
		}

		public bool AreEmotesSuppressed()
		{
			return method_11<bool>("AreEmotesSuppressed", Array.Empty<object>());
		}

		public void SetSuppressEmotes(bool suppress)
		{
			method_8("SetSuppressEmotes", suppress);
		}

		public void UpdateThickness()
		{
			method_8("UpdateThickness");
		}

		public void UpdateDeckStateEmotes()
		{
			method_8("UpdateDeckStateEmotes");
		}
	}
}
